home *** CD-ROM | disk | FTP | other *** search
- #pragma once
-
- // Menu constants
- #define kNumAppMenus 1
-
- #define kTileMenuID 131
-
- // Menu items
- #define iContRedraw 1
- #define iConstrain 2
- #define iResetTile 3
- //----------------- 4
- #define kFirstSym 5 // item number of first symmetry group in menu
-
- // Colors for the various elements
- #define kBGColor lamp_black // cold_grey
- #define kGridColor fluorescent_blue // cadmium_yellow
- #define kDragColor red
- #define kCellColor gxWhite
- #define kTranslateColor apple_yellow //incadescent_high
- #define kMirrorColor apple_blue
- #define kGlideColor sap_green //cinnabar_green
- #define kRotoColor gxBlack //mars_yellow
-
- #define kNumOpShapes 6 // Never need more than 6 Op shapes to show a group
- #define kHitTolerance ff(3)
-
- // Useful coords
- #define kStartingOffset ff(32)
- #define kStartingGridSize ff(64)
- #define kMinDistance ff(16) // minimum allowable "cell" size
- #define kMaxDistance ff(128) // maximum allowable "cell" size
-
- // The symmetry groups
- enum
- {
- p1 = kFirstSym, // Two non-parallel translations
- pg, // Two parallel glide reflections
- pm, // Two parallel mirrors
- cm, // A reflection and a parallel glide reflection
- p2, // Four half-turns
- p2mg // A reflection and a perpendicular glide reflection
- };
-
- // Symmetry operations types
- enum
- {
- noOp,
- transOp, // translation
- reflOp, // reflection (a mirror)
- glideOp, // glide reflection
- roto2Op, // center of twofold rotation
- roto3Op, // center of threefold rotation
- roto4Op, // center of fourfold rotation
- roto6Op // center of sixfold rotation
- };
-
- // Constraint types
- enum
- {
- constrainNone,
- constrainH,
- constrainV,
- constrainBoth // notice that ver + hor = both
- };
-
- typedef struct
- {
- gxShape snake1; // A manipulable contour
- long slavePt[3]; // Indices of the constrained points
- } dragger;
-